<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="coinfaces">

        <title>服务器负载</title>

    <link rel="stylesheet" href="../../theme/css/style.css">
    <link rel="stylesheet" href="../../theme/css/pygments.css">



</head>

<body>
    <div class="content">
<h1>服务器负载</h1>    <p>
        under
            <a href="../../tags/linux/">linux</a>
    </p>
    <p>
        in <a href="../../categories/tech/">tech</a>
    </p>
    <p>Published: 2020-03-01</p>


    <p>在类Unix操作系统中，服务器的负载（Server Load）反映了系统中在运行和等待中的任务数量的统计值，通常显示过去1分钟、5分钟和15分钟这3个时间窗口的统计值（uptime、top、htop）。</p>
<p>在Linux系统中，这个数值反映了正在运行的以及在CPU和IO等待队列中的线程数量（其它操作系统可能只统计了进程的数量，或者没有计算IO等待队列中的任务数量）。在Linux中运行同样数量的IO密集任务时的系统负载，很容易超过运行同样数量的计算密集的任务时的系统负载，就是因为Linux把IO等待队列中的任务纳入了负载统计。</p>
<p>多CPU的情况下，服务器的负载是所有CPU的负载之和，因此要除以CPU数量才能估计平均每个CPU的负载是多少。</p>
<p>负载的统计采用了权重系数按指数衰减的滑动平均统计方式，其包含了从系统启动以来所有数据的计算结果，只是越早的数据的权重越小。假设统计窗口为<code>T</code>，从时间<code>t-T</code>到当前时间<code>t</code>这段时间的数据约占<code>1-1/e</code>（约63%）的权重，<code>t-T</code>之前的数据约占<code>1/e</code>（约37%）的权重，开机时间<code>t</code>越长，权重占比越接近这些数值。</p>
<p>这种统计方式最大的好处是，当前系统负载是原系统负载和当前采样值的加权平均，而权重是统计窗口<code>T</code>、开机时间<code>t</code>和采样频率<code>f</code>的函数，系统无需保存历史采样数据。如果这个假设成立，不难得出以下推论：</p>
<ol>
<li>系统负载的计算依赖于开机时间，<code>uptime</code>的输出结果中包含系统负载数据并不奇怪</li>
<li>系统负载必须从开机起连续不断地计算，系统负载数据应该是操作系统计算出来的，可以看到Linux把系统负载的数据放在<code>/proc/loadavg</code>里，供用户查看</li>
<li>统计窗口一旦确定就不能更改了，Linux中的系统负载应该只有1分钟、5分钟和15分钟这3个时间窗口的统计值</li>
</ol>
<p>以上内容来自<a href="https://en.wikipedia.org/wiki/Load_(computing)">维基百科</a></p>
    </div>
<nav class="nav sidebar">
    <div class="siteinfo">
        <div class="sitename"><a href="../..">coinfaces</a></div>
        <div class="tagline">Another Side of Life</div>
    </div>

        <a href="../../categories/">categories</a>
        <a href="../..">&larr; Home</a>
</nav><footer class="footer">
    <span>
        &copy; jpli &middot;
        under <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA 4.0</a>
    </span>
    |
    <span>
        Powered by:
        <a href="http://blog.getpelican.com/">Pelican</a>
    </span>
</footer></body>
</html>